//package com.sixbing.spider.service.impl;
//
//import java.io.IOException;
//import java.util.ArrayList;
//import java.util.List;
//
//import com.sixbing.spider.bean.CollegeBean;
//import com.sixbing.spider.bean.LinkTypeData;
//import com.sixbing.spider.bean.Rule;
//import com.sixbing.spider.utils.MyUtils;
//import com.sixbing.spider.utils.RuleException;
//import org.jsoup.Connection;
//import org.jsoup.Jsoup;
//import org.jsoup.UnsupportedMimeTypeException;
//import org.jsoup.nodes.Document;
//import org.jsoup.nodes.Element;
//import org.jsoup.select.Elements;
//
//
//@SuppressWarnings({ "rawtypes", "unchecked" })
//public class CollegeService {
//	public static boolean haveNextPage = true;
//
//	public static boolean isHaveNextPage() {
//		return haveNextPage;
//	}
//
//	public static void setHaveNextPage(boolean haveNextPage) {
//		CollegeService.haveNextPage = haveNextPage;
//	}
//
//	public static List getCollege(Rule rule, String provinceId) {
//		/**
//		 * 检验rule
//		 */
//		String bgcolor = null;
//		List list = new ArrayList();
//		CollegeBean collegeDataBean = null;
//		Elements results = new Elements();
//		results = getBody(rule);
//		// 对body内的数据解析
//		for (Element result : results) {
//			Elements tbodys = result.getElementsByTag("tbody");
//			for (int tbo = 0; tbo < tbodys.size(); tbo++) {
//				Elements trs = tbodys.get(tbo).getElementsByTag("tr");
//				for (Element tr : trs) {
//					bgcolor = tr.attr("onmouseover");
//					if (bgcolor != null
//							&& "this.style.background='#FFFFEE'"
//									.equals(bgcolor)) {
//						if (trs.size() < 21 && haveNextPage == true) {
//							//Logi("-------------高校数量-" + (trs.size()-1));
//							haveNextPage = false;
//						} else {
//							haveNextPage = true;
//						}
//						collegeDataBean = new CollegeBean();
//						Elements tds = tr.getElementsByTag("td");
//						//
//						collegeDataBean.setCoId("1");// id
//						collegeDataBean.setProvinceId(provinceId + "");// ProvinceId
//						if (tds.get(0).getElementsByTag("a").size() != 0) {
//							collegeDataBean.setCoName(tds.get(0)
//									.getElementsByTag("a").get(0).text());// 巢湖学院
//						} else {
//							collegeDataBean.setCoName(tds.get(0).text());// 巢湖学院
//						}
//
//						collegeDataBean.setCoLocation(tds.get(1).text());// 安徽
//						collegeDataBean.setCoSubjection(tds.get(2).text());// 安徽省教育厅
//						collegeDataBean
//								.setCoEducationalLevel(tds.get(3).text());// 本科
//						collegeDataBean.setCoRunningType(tds.get(4).text());// 学院
//						collegeDataBean.setCoInstitutionType(tds.get(5).text());// 师范
//						list.add(collegeDataBean);
//						//
//					} else {
//						haveNextPage = false;
//					}
//
//				}
//			}
//			// Logi(links);
//
//		}
//
//		return list;
//	}
//
//	protected static List<LinkTypeData> extract(Rule rule) {
//		/**
//		 * 检验rule
//		 */
//		validateRule(rule);
//
//		List<LinkTypeData> datas = new ArrayList<LinkTypeData>();
//		LinkTypeData data = null;
//		try {
//			/**
//			 * rule
//			 */
//			String url = rule.getUrl();
//			String[] params = rule.getParams();
//			String[] values = rule.getValues();
//			String resultTagName = rule.getResultTagName();
//			int type = rule.getType();
//			int requestType = rule.getRequestMoethod();
//			UnsupportedMimeTypeException mimeType = new UnsupportedMimeTypeException(
//					"Hey this is Mime", "application/xml",
//					"http://dictionary.cambridge.org/dictionary/english/reality");
//			String mime = mimeType.getMimeType();
//			Connection conn = Jsoup.connect(url).header("Content-Type", mime)
//					.ignoreContentType(false);
//			if (params != null) {
//				for (int i = 0; i < params.length; i++) {
//					conn.data(params[i], values[i]);
//				}
//			}
//			Document doc = null;
//			switch (requestType) {
//			case Rule.GET:
//				doc = conn.timeout(100000).get();
//				break;
//			case Rule.POST:
//				doc = conn.timeout(100000).post();
//				break;
//			}
//
//			Elements results = new Elements();
//			switch (type) {
//			case Rule.CLASS:
//				results = doc.getElementsByClass(resultTagName);
//				break;
//			case Rule.ID:
//				Element result = doc.getElementById(resultTagName);
//				results.add(result);
//				break;
//			case Rule.SELECTION:
//				results = doc.select(resultTagName);
//				break;
//			default:
//				// 解析获得body内容
//				if (MyUtils.isEmpty(resultTagName)) {
//					results = doc.getElementsByTag("body");
//				}
//			}
//			// 对body内的数据解析
//			for (Element result : results) {
//				Elements links = result.getElementsByTag("a");
//				for (Element link : links) {
//					// ��Ҫ��ɸѡ
//					String linkHref = link.attr("href");
//					String linkText = link.text();
//					Elements imgs = link.getElementsByTag("img");
//					String imgsrc = "";
//					for (Element img : imgs) {
//						imgsrc = img.attr("src");
//					}
//
//					if (linkHref != null && linkText != null && linkHref != ""
//							&& linkText != "" && linkText.length() > 1
//							&& linkHref.contains("http:")
//							&& linkHref.contains("http:")) {
//						data = new LinkTypeData();
//						data.setLinkimg(imgsrc);
//						data.setLinkHref(linkHref);
//						data.setLinkText(linkText);
//
//						datas.add(data);
//					}
//
//				}
//			}
//
//		} catch (IOException e) {
//			e.printStackTrace();
//		}
//
//		return datas;
//	}
//
//	/**
//	 * url
//	 */
//	private static void validateRule(Rule rule) {
//		String url = rule.getUrl();
//		if (MyUtils.isEmpty(url)) {
//			throw new RuleException("url null");
//		}
//		if (!url.startsWith("http://")) {
//			throw new RuleException("url not have http://");
//		}
//
//		if (rule.getParams() != null && rule.getValues() != null) {
//			if (rule.getParams().length != rule.getValues().length) {
//				throw new RuleException("exception");
//			}
//		}
//
//	}
//
//	/**
//	 * url
//	 */
//	private static void Logi(Object obj) {
//		System.out.println("\n---------------------------------------------\n");
//		System.out.println(obj.toString());
//		System.out.println("\n---------------------------------------------\n");
//	}
//
//	/**
//	 * 解析页面获得body
//	 *
//	 * @param rule
//	 * @return results
//	 */
//	private static Elements getBody(Rule rule) {
//		Elements results = new Elements();
//		validateRule(rule);
//		try {
//			/**
//			 * rule
//			 */
//			String url = rule.getUrl();
//			MyUtils.Log("url=" + url);
//			String[] params = rule.getParams();
//			String[] values = rule.getValues();
//			String resultTagName = rule.getResultTagName();
//			int type = rule.getType();
//			int requestType = rule.getRequestMoethod();
//			UnsupportedMimeTypeException mimeType = new UnsupportedMimeTypeException(
//					"Hey this is Mime", "application/xml",
//					"http://dictionary.cambridge.org/dictionary/english/reality");
//			String mime = mimeType.getMimeType();
//			Connection conn = Jsoup
//					.connect(url)
//					.userAgent(
//							"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.64 Safari/537.31")
//					.ignoreContentType(false);
//			// .header("Content-Type", mime)
//			// 拼接参数
//			if (params != null) {
//				for (int i = 0; i < params.length; i++) {
//					conn.data(params[i], values[i]);
//				}
//			}
//			Document doc = null;
//			switch (requestType) {
//			case Rule.GET:
//				doc = conn.timeout(100000).get();
//				break;
//			case Rule.POST:
//				doc = conn.timeout(100000).post();
//				break;
//			}
//
//			switch (type) {
//			case Rule.CLASS:
//				results = doc.getElementsByClass(resultTagName);
//				break;
//			case Rule.ID:
//				Element result = doc.getElementById(resultTagName);
//				results.add(result);
//				break;
//			case Rule.SELECTION:
//				results = doc.select(resultTagName);
//				break;
//			default:
//				// 解析获得body内容
//				if (MyUtils.isEmpty(resultTagName)) {
//					results = doc.getElementsByTag("body");
//					// Logi(results);
//				}
//			}
//		} catch (IOException e) {
//			e.printStackTrace();
//		}
//		return results;
//	}
//}
